package com.liming.service.wx.pojo.vo;

import com.wechat.pay.java.core.util.StringUtil;
import lombok.Data;


/**
 * 返回给前端小程序的发起支付的请求参数
 *
 * @author liming
 * @date 2025/4/4
 */
@Data
public class PrepayVO {

    /**
     * timeStamp
     * 【时间戳】标准北京时间，时区为东八区，自1970年1月1日 0点0分0秒以来的秒数。
     * 注意：部分系统取到的值为毫秒级，商户需要转换成秒(10位数字)。
     */
    private String timeStamp;

    /**
     * nonceStr
     * 【随机字符串】不长于32位。该值建议使用随机数算法生成。
     */
    private String nonceStr;

    /**
     * package
     * 【预支付交易会话标识】JSAPI/小程序下单接口返回的prepay_id参数值，提交格式如：prepay_id=***
     */
    private String prepayPackage;

    /**
     * signType
     * 【签名类型】默认为RSA，仅支持RSA。
     */
    private String signType;

    /**
     * paySign
     * 【签名值】使用字段appId、timeStamp、nonceStr、package计算得出的签名值，详细参考：小程序调起支付签名。
     * 注意：此处签名需使用实际调起支付小程序appid，且为JSAPI/小程序下单时传入的appid，微信支付会校验下单与调起支付所使用的appid的一致性。
     */
    private String paySign;

    /**
     * 小程序id
     */
    private String appid;

    /**
     * 订单ID
     */
    private Long orderId;

    /**
     * 订单号
     */
    private String orderNo;

    @Override
    public String toString() {
        String sb = StringUtil.toIndentedString(appid) + "\n" +
                StringUtil.toIndentedString(timeStamp) + "\n" +
                StringUtil.toIndentedString(nonceStr) + "\n" +
                StringUtil.toIndentedString(prepayPackage) + "\n";
        return sb;
    }
}
